home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
DRIVES.SWG
/
0078_Drive Detection.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-08-24
|
1KB
|
70 lines
{
SA> Does anyone have any idea of how I can check the system hardware and
SA> identify available hard drives and disk drives?
}
const
{ GetDriveType return values. REQUIRES DOS 3.x or greater}
dtError = 0; { Drive physically isn't available }
dtRemote = 1; { Remote (network) disk drive }
dtFixed = 2; { Fixed (hard) disk drive }
dtRemovable = 3; { Removable (floppy) disk drive }
dtBadVer = $FF; { Invalid DOS version (DOS 3.x required) }
Function GetDriveType(Drive : byte) : byte; assembler;
Asm
MOV AH,30h
INT 21h
CMP AL,3
JGE @@1
MOV AL,dtBadVer
JMP @@4
@@1:
MOV BL,Drive
MOV AX,4409h
INT 21h
JNC @@2
MOV AL,dtError
JMP @@5
@@2:
CMP AL,True
JNE @@3
MOV AL,dtRemote
JMP @@5
@@3:
MOV AX,4408h
INT 21h
CMP AL,True
JNE @@4
MOV AL,dtFixed
JMP @@5
@@4:
MOV AL,dtRemovable
@@5:
End; { GetDriveType }
var
Drive : byte;
DT : byte;
Begin
for Drive := 1 to 25 do
begin
DT := GetDriveType(Drive);
if DT <> dtError then
begin
Write('Drive ', Chr(Drive + 64), ': ');
case DT of
dtRemote: WriteLn('Network drive');
dtFixed: WriteLn('Hard disk');
dtRemovable: WriteLn('Floppy drive')
end
end
end
End.